var api = require('../../../utils/api.js')
var $ = require('../../../utils/util.js')
var regeneratorRuntime = require('../../../utils/runtime.js')
var app = getApp()
var Store = app.Store


Page({
  data: {
    id: 0,
    ticket_num: '', // 巡检订单号
    info: null,
    imgUrl: api.url, // 图片url

    id: '', //缺陷独有（有的时候是修改）
    ticket_num: '', //检修和巡检独有 
    company: '', // 企业用户
    company_id: '', // 企业id
    factory: '', // 站房名称
    equipment: '', // 缺陷设备名称
    equipType: '', // 设备类型
    voltageLevel: '', // 电压等级
    standard: '', // 缺陷标准
    defectGrade: '', // 缺陷性质
    defectFinder: '', // 缺陷发现人
    defectFinder_id: '', // 缺陷发现人用户表id
    phone: '', // 联系电话
    findDate: '', // 缺陷发现时间
    defectType: '', // 设备类 和 非设备类
    mainEquipImage: '', // 主设备图片
    partEquipImage: '', // 局部设备图片
    nameplateImage: '', // 设备铭牌图片
    content: '', // 缺陷内容
    deal: 0, // 缺陷安排处理 0需要安排处理；2直接消缺
    submit: '', // 保存0；提交1

    dealArr: [{ type: 0, text: '需要安排处理' }, { type: 2, text: '直接消缺' },], //  缺陷安排处理 0需要安排处理；2直接消缺
    dealIndex: 0, // 配置的参数
  },
  onLoad: async function (options) {
    if ('id' in options) {
      this.setData({
        id: options.id,
        ticket_num: options.ticket_num
      })
    }
    var res = await this.getInfo()
    this.setData({
      info: res.data
    })
  },

  onShow(){
    var form = Store.getState().formInfor.form
    var key = form.key
    switch (key) {
      case 'selectCompany': // 获取企业信息  
        this.setData({
          companySelected: form.selected,
          company: form.selected.dept_name
        })
        break
      case 'selectStation': // 站房名称
        this.setData({
          stationSelected: form.selected,
          factory: form.selected.dept_name
        })
        break
      case 'getRepairer': // 获取抢修负责人、 抢修人员 、缺陷发现人 
        switch (form.config.type) {
          case 1: // 抢修负责人 
            this.setData({
              leader: form.selected.role_id
            })
            break;
          case 2: // 抢修人员
            this.setData({
              staff: form.selected.role_id
            })
            break;
          case 3: // 缺陷发现人  
            this.setData({
              defectFinder: form.selected.role_id,
              defectFinder_id: form.selected.user_id,
            })

            break;
        }
        break
      case 'getDefectStandard': // 获取缺陷标准和性质
        this.setData({
          standard: form.selected.location + ':' + form.selected.defect_type,
          defectGrade: form.selected.defect_prop
        })
        break
      case 'selectYcxlm': // 设备名称
        this.setData({
          equipment: form.selected.YCXLM
        })
        break
    }
  },

  getInfo() { // 获取详情信息
    return new Promise((resolve)=>{
      var params = {
        id: this.data.id,
      }
      api.$post(api.pollingManage.info, params).then((res) => {
        this.setData({
          company:res.data.company.NAMEFIRM,
          factory:res.data.company.NAME,
          phone: res.data.staff.phonenumber,
          defectType:'',
          defectFinder_id:res.data.staff.user_id,
          defectFinder:res.data.staff.userName,

        })
        resolve(res)
      })
    }) 
  },
 

  updateHandle(e) {
    var { submit } = $.detail(e)
    var params = { 
      id: this.data.id, // 缺陷独有（有的时候是修改）
      ticket_num: this.data.ticket_num, // 检修和巡检独有
      company: this.data.company,
      cm: this.data.factory,
      equipment: this.data.equipment,
      equipType: this.data.equipType,
      voltageLevel: this.data.voltageLevel,
      standard: this.data.standard,
      defectGrade: this.data.defectGrade,
      defectFinder: this.data.defectFinder,
      defectFinder_id: this.data.defectFinder_id,
      phone: this.data.phone,
      findDate: this.data.findDate,
      defectType: this.data.defectType,
      mainEquipImage: this.data.mainEquipImage,
      partEquipImage: this.data.partEquipImage,
      nameplateImage: this.data.nameplateImage,
      content: this.data.content,
      deal: this.data.deal,
      submit
    }

    api.$post(api.pollingManage.setDefectBypatrolplan, params).then((res) => {
      $.toast('提交成功')
      setTimeout(() => {
        $.linkurl('', 'back')
      }, 1500)
    }) 
  },
 

  async selectYcxlmHandle(e) { // 根据站房获取设备列表
    var res = await app._selectStation({ dept_id: '', company: this.data.company })
    var result = res.data.find((item) => {
      return item.dept_name == this.data.factory
    })

    var { type } = $.detail(e)
    Store.dispatch({
      type: 'SET_FROM',
      form: {
        key: 'selectYcxlm', // 后台要的更改字段 
        type: 1, // 表单类型 1： radio  2：select
        config: {
          station: result.dept_id
        },
      },
    })
    $.linkurl(`/pages/main/chooseForm/chooseForm`)
  },

  getRepairerCompanyHandle(e) { // 选抢修负责人或者抢修人员
    var { type } = $.detail(e)
    Store.dispatch({
      type: 'SET_FROM',
      form: {
        key: 'getRepairer', // 后台要的更改字段 
        type: 1, // 表单类型 1： radio  2：select
        config: {
          type // 1 获取负责人；2获取人员；3缺陷发现人
        },
      },
    })
    $.linkurl(`/pages/main/chooseForm/chooseForm`)
  },

  getDefectStandardHandle(e) { // 选抢修负责人或者抢修人员
    var { type } = $.detail(e)
    Store.dispatch({
      type: 'SET_FROM',
      form: {
        key: 'getDefectStandard', // 后台要的更改字段 
        type: 3, // 表单类型 1： radio  2：select 3:特殊的radio
        config: {

        },
      },
    })
    $.linkurl(`/pages/main/chooseForm/chooseForm`)
  },

  upPicsHandle(e) { // ##图片组件传出来的数据##
    var { pics, key } = e.detail
    console.log(pics, key)
    this.setData({
      [key]: pics.length > 0 ? pics[0] : []
    }) 
  },
 
  equipmentHandle() { // 选择设备类型
    this.setData({
      pinkColumns: this.data.defectArr,
      pinkIndex: this.data.defecStyle,
      key_picker: 'defectStyle',
      isShowPicker: true
    })
  },

  dealHandle() { // 缺陷安排处理 0需要安排处理；2直接消缺
    this.setData({
      pinkColumns: this.data.dealArr,
      pinkIndex: this.data.dealStyle,
      key_picker: 'dealStyle',
      isShowPicker: true
    })
  },

  pickerConfirmHandle(e) { // 时间组件传出来的数据 
    var { value, key, index } = e.detail
    this.setData({
      [key]: value.type
    })
    switch (key) {
      case 'defectStyle': // 设备类型
        this.setData({
          defectType: value.text
        })
        break;
      case 'dealStyle': // 缺陷安排处理
        this.setData({
          deal: value.type,
          dealIndex: index
        })
        break;
    }
    console.log(value, key)
  },

  //##input 输入##
  input_handle(e) { 
    this.setData({
      [e.currentTarget.dataset.key]: e.detail
    })
  },
  //##input 输入##

})